﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BLL;
using DAL;
using System.Data.SqlClient;

namespace TTCN_QLDiemC3.MyUserControl.UCHienThi
{
    public partial class UCBangDiem : UserControl
    {
        String idNam = null;
        String idKhoi = null;
        String idMonHoc = null;
        String idHocSinh = null;
        String idgv = null;
        String idky = null;
        String idLop = null;
        public UCBangDiem()
        {
            InitializeComponent();
            showCBBNamHoc();
            showCBBKhoi();
        }

        /// <summary>
        /// Hiển thị cbbNamHoc
        /// </summary>
        void showCBBNamHoc()
        {
            BangDiemBUO bdBUO = new BangDiemBUO();
            cbbNamHoc.DataSource = bdBUO.getAllNamHoc();
            cbbNamHoc.DisplayMember = "TenNamHoc";
            cbbNamHoc.ValueMember = "id_NamHoc";
        }

        /// <summary>
        /// Hiển thị cbbKhoi
        /// </summary>
        void showCBBKhoi()
        {
            BangDiemBUO bdBUO = new BangDiemBUO();
            cbbKhoi.DataSource = bdBUO.getAllKhoi();
            cbbKhoi.DisplayMember = "TenKhoi";
            cbbKhoi.ValueMember = "id_Khoi";
        }

        private void cbbNamHoc_SelectedIndexChanged(object sender, EventArgs e)
        {
            idNam = cbbNamHoc.SelectedValue.ToString();
            BangDiemBUO bdBUO = new BangDiemBUO();
            cbbKy.DataSource = bdBUO.getKyByIdNamHoc(idNam);
            cbbKy.DisplayMember = "TenKy";
            cbbKy.ValueMember = "id_Ky";
        }

        void showCBBMonHoc()
        {
            BangDiemBUO bdBUO = new BangDiemBUO();
            cbbMonHoc.DataSource = bdBUO.HienThiMonTheoKhoi(idKhoi);
            cbbMonHoc.DisplayMember = "TenMonHoc";
            cbbMonHoc.ValueMember = "id_MonHoc";

        }

        private void cbbKhoi_SelectedIndexChanged(object sender, EventArgs e)
        {
            idKhoi = cbbKhoi.SelectedValue.ToString();
            BangDiemBUO bdBUO = new BangDiemBUO();
            cbbLop.DataSource = bdBUO.showDSLopTungNam(idKhoi, idNam);
            cbbLop.DisplayMember = "TenLop";
            cbbLop.ValueMember = "id_Lop";

            showCBBMonHoc();
        }

        private void cbbMonHoc_SelectedIndexChanged(object sender, EventArgs e)
        {
            idMonHoc = cbbMonHoc.SelectedValue.ToString();

            BangDiemBUO bdBUO = new BangDiemBUO();

            cbbGiaoVien.DataSource = bdBUO.HienThiGVTheoIdMonHoc(idMonHoc);
            cbbGiaoVien.DisplayMember = "HoTenGV";
            cbbGiaoVien.ValueMember = "id_GiaoVien";
        }
        CSDLQLDiemHSC3DataContext context = new CSDLQLDiemHSC3DataContext();
        private void btnCapNhat_Click(object sender, EventArgs e)
        {
            
            try
            {
                CreateBangDiem();
                showBangDiem();                
            }
            catch (Exception)
            {
                showBangDiem();                
            }
        }

        void showBangDiem()
        {
            try
            {
                idgv = cbbGiaoVien.SelectedValue.ToString();
                idky = cbbKy.SelectedValue.ToString();
                BangDiemBUO bdBUO = new BangDiemBUO();
                dataGridView1.AutoGenerateColumns = false;
                dataGridView1.DataSource = bdBUO.showBangDiemTheoLop(idky, idMonHoc, idLop,idgv);
                //idgv = "ghgh";
            }
            catch (Exception)
            {
                //MessageBox.Show("Lỗi", "Chưa chọn đủ dữ liệu!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            
        }

        void CreateBangDiem()
        {
            BangDiemBUO bdBUO = new BangDiemBUO();
            idLop = cbbLop.SelectedValue.ToString();

            foreach (var item in bdBUO.getAllHocSinhByIdLop(idLop))
            {
                InsertBangDiem(item.id_HocSinh);
                idHocSinh = item.id_HocSinh;
            }
        }

        void InsertBangDiem(String idHs)
        {
            idgv = cbbGiaoVien.SelectedValue.ToString();
            idky = cbbKy.SelectedValue.ToString();
            BangDiemBUO bdBuo = new BangDiemBUO();
            tbl_BangDiem obj = new tbl_BangDiem();
            obj.id_GiaoVien = idgv;
            obj.id_HocSinh = idHs;
            obj.id_Ky = idky;
            obj.id_MonHoc = idMonHoc;
            bdBuo.Insert(obj);

        }


        
        private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            
            try
            {
                float diemMieng=-1, diem15Phut=-1, diem1Tiet=-1, diemHK=-1,diem=-1;
                String idBangDiem = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
                String m=null, ml=null, mt=null, hk=null;

                tbl_BangDiem obj = new tbl_BangDiem();

                if (e.ColumnIndex > 5)
                {
                    diem = float.Parse(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString());

                    if ((diem < 0) || (diem > 10))
                    {
                        MessageBox.Show("Dữ liệu không đúng.\n Điểm phải >=0 và <=10", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else
                    {
                        try
                        {
                            diemMieng = float.Parse(dataGridView1.Rows[e.RowIndex].Cells[6].Value.ToString());
                            diem15Phut = float.Parse(dataGridView1.Rows[e.RowIndex].Cells[7].Value.ToString());
                            diem1Tiet = float.Parse(dataGridView1.Rows[e.RowIndex].Cells[8].Value.ToString());
                            diemHK = float.Parse(dataGridView1.Rows[e.RowIndex].Cells[9].Value.ToString());

                        }
                        catch (Exception)
                        {
                            //MessageBox.Show("Dữ liệu không đúng.\n Điểm phải >=0 và <=10", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        //Kiểm tra dữ liêu nhập****************
                        if ((diemMieng <= 10) && (diemMieng >= 0))
                        {
                            obj.DiemMieng = diemMieng;
                        }
                        else
                        {
                            //MessageBox.Show("Dữ liệu không đúng.\n Điểm phải >=0 và <=10", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }

                        if ((diem15Phut <= 10) && (diem15Phut >= 0))
                        {
                            obj.Diem15Phut = diem15Phut;
                        }
                        else
                        {
                            //MessageBox.Show("Dữ liệu không đúng.\n Điểm phải >=0 và <=10", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }

                        if ((diem1Tiet <= 10) && (diem1Tiet >= 0))
                        {
                            obj.Diem1Tiet = diem1Tiet;
                        }
                        else
                        {
                            //MessageBox.Show("Dữ liệu không đúng.\n Điểm phải >=0 và <=10", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }

                        if ((diemHK <= 10) && (diemHK >= 0))
                        {
                            obj.DiemHocKy = diemHK;
                        }
                        else
                        {
                            //MessageBox.Show("Dữ liệu không đúng.\n Điểm phải >=0 và <=10", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        //****************************
                        //Cập nhật dữ liệu
                        try
                        {
                            tbl_BangDiem khoa = context.tbl_BangDiems.Where(n => n.id_BangDiem.Equals(idBangDiem)).ToList<tbl_BangDiem>().FirstOrDefault();
                            khoa.DiemMieng = obj.DiemMieng;
                            khoa.Diem15Phut = obj.Diem15Phut;
                            khoa.Diem1Tiet = obj.Diem1Tiet;
                            khoa.DiemHocKy = obj.DiemHocKy;
                            context.SubmitChanges();
                        }
                        catch
                        {
                            MessageBox.Show("Cập nhật không thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }  
            }
            catch
            {
                
            }
            showBangDiem();
        }

        private void dataGridView2_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
                            
            
        }

        private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
        {

        }

        private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {

        }
    }
}
